from add_employee_transaction import AddEmployeeTransaction
from biweekly_schedule import BiweeklySchedule
from commissioned_classification import CommissionedClassification
from payment_classification import PaymentClassification
from payment_schedule import PaymentSchedule

class AddCommissionedEmployee(AddEmployeeTransaction):
    def __init__(self) -> None:
        pass

    def add_commissioned_transaction(self, emp_id: int, name, address, salary, commission_rate) -> None:
        super().add_employee_transaction(emp_id, name, address)
        self.salary = salary
        self.commission_rate = commission_rate

    def get_classification(self) -> PaymentClassification:
        return CommissionedClassification(self.salary, self.commission_rate)
    
    def get_schedule(self) -> PaymentSchedule:
        return BiweeklySchedule()